home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / lang_c / uclib51a / wn_defs.h < prev    next >
Text File  |  1988-10-06  |  8KB  |  187 lines

  1. /*  wn_defs.h
  2.  *
  3.  *  This header contains the definitions for the Unicorn Window System
  4.  *  Version 2.0.  Currently menus and data forms are not implemented
  5.  *  although they are in the works.  As with shareware in general the
  6.  *  author connot promise a completion date as this is a spare time
  7.  *  time project while the author moonlights about 40 hours a week
  8.  *  with a Bellevue, WA software house attempting to feed his family
  9.  *  and dogs.
  10.  *
  11.  */
  12.  
  13. #define TABS         4
  14. #define UP       200
  15.  
  16. typedef (*PFI)();
  17.  
  18.  
  19.  
  20. typedef struct fld
  21. {
  22.    char       *fld_mask;     /* Data entry mask for this field          */
  23.    char       *fld_prot;     /* protection for this field          */
  24.    char       *fld_prompt;   /* Field prompt field              */
  25.    char       *fld_name;     /* Name label for field              */
  26.    int           fld_number;   /* Number of this field in the form      */
  27.    char       *fld_hlptag;   /* Help tag for this field.          */
  28.    char       *fld_message;  /* Message to be displayed when field is */
  29.                  /* the currently active field.          */
  30.    int           fld_prow;     /* Field prompt row              */
  31.    int           fld_pcol;     /* Field prompt column              */
  32.    int           fld_patt;     /* Field prompt attribute              */
  33.    char       *fld_data;     /* pointer to the field data, always kept*/
  34.                  /* as a char *, the field type handles   */
  35.                  /* any required data conversions.          */
  36.    int          fld_type;      /* field type                  */
  37.    int          fld_active;    /* Field active attribute.           */
  38.    int          fld_inactive;  /* Field inactive attribute.          */
  39.    int          fld_row;         /* field row within the window          */
  40.    int          fld_col;         /* field column within the window          */
  41.    PFI          fld_bfore;     /* function done before field data entry */
  42.    PFI          fld_after;     /* function done after field data entry  */
  43.    PFI          fld_val;         /* field validation function          */
  44.    PFI          usr_val;         /* User validation function, called just */
  45.                  /* before any defined fld_val().          */
  46.    PFI          on_key;         /* Called from the field editor when a   */
  47.                  /* key is pressed by the user.  If this  */
  48.                  /* function pointer is NULL ( default )  */
  49.                  /* then no function call is performed.   */
  50.    char       *user1;         /* user pointer                  */
  51.    char       *user2;         /* user pointer                  */
  52.    struct fld *next;         /* pointer to next data field          */
  53.    struct fld *prev;         /* pointer to previous data field          */
  54. } FIELD, *FIELDPTR;
  55.  
  56.  
  57.  
  58. typedef struct
  59. {
  60.    int          nw;         /* Northwest corner character          */
  61.    int          ne;         /* Northeast corner character          */
  62.    int          sw;         /* Southwest corner character          */
  63.    int          se;         /* Southeast corner character          */
  64.    int          line;         /* Horizontal line character          */
  65.    int          side;         /* Vertical side character           */
  66.    char       *user1;         /* user pointer                  */
  67.    char       *user2;         /* user pointer                  */
  68. }BORDER, *BORDERPTR;
  69.  
  70.  
  71. typedef struct clr
  72. {
  73.    int          bdr;         /* window border color              */
  74.    int          title;         /* Default window title color          */
  75.    int          hilite;         /* window highlighting color          */
  76.    int          normal;         /* window normal color              */
  77.    int          prev;         /* previous normal color              */
  78.    char       *user1;         /* User available pointer              */
  79.    char       *user2;         /* User available pointer              */
  80. } COLOR, *COLORPTR;
  81.  
  82. /*
  83. typedef struct
  84. {
  85.    int          row;
  86.    int          col;
  87. } CURSOR, *CURSORPTR;
  88. */
  89.  
  90. typedef struct title
  91. {
  92.    int          side;         /* TOP or BOTTOM                  */
  93.    int          color;         /* Attribute for the title.          */
  94.    int          position;      /* Border column or RIGHT, LEFT or CENTER*/
  95.    char       *title;         /* pointer to the title text          */
  96.    struct title *next;         /* pointer to the next title structure   */
  97.    char       *user1;         /* user pointer                  */
  98.    char       *user2;         /* user pointer                  */
  99. } TITLE, *TITLEPTR;
  100.  
  101.  
  102.  
  103. typedef struct wn
  104. {
  105.    char       *wn_name;      /* Name for the window.              */
  106.    int          visible;         /* true if window is currently visible   */
  107.    int          hidden;         /* true if window has been hidden          */
  108.    char       *sav_buff;     /* pointer to background save buffer     */
  109.    TITLEPTR   title;         /* pointer to the window title structure */
  110.    int          row;         /* upper left row of window          */
  111.    int          col;         /* upper left column of window          */
  112.    int          margins;         /* width of right & left margins.          */
  113.    int          width;         /* window width                  */
  114.    int          height;         /* window height                  */
  115.    int          wn_cur_row;    /* window current row pointer          */
  116.    int          wn_select;     /* window selection              */
  117.    CURSORPTR  csr;         /* pointer to cursor structure          */
  118.    BORDERPTR  bdr;         /* window border type              */
  119.    COLORPTR   clr;         /* Window color structure              */
  120.    struct wn  *next;         /* pointer to next window in list          */
  121.    struct wn  *prev;         /* pointer to previous window in list    */
  122.    FIELDPTR   fld_first;     /* pointer to the first field structure  */
  123.    FIELDPTR   fld_last;      /* pointer to the last field structure   */
  124.    int          wn_numflds;    /* Number of fields in the data form     */
  125.    char       *wn_help;      /* Help tag for the window.          */
  126.    char       *user1;         /* user pointer                  */
  127.    char       *user2;         /* user pointer                  */
  128.    } WINDOW, *WINDOWPTR;
  129.  
  130.  
  131. typedef struct wn_menu
  132. {
  133.    char       *mn_name;      /* pointer to the menu name          */
  134.    char       **mn_select;   /* pointer to the menu text selections   */
  135.    void       (**func)();    /*                       */
  136.  
  137.    void       (*mn_hlp)();   /* menu help function              */
  138.    char       *user1;         /* user pointer                  */
  139.    char       *user2;         /* user pointer                  */
  140. } MENU, *MENUPTR;
  141.  
  142.  
  143. /*--------------------------------------------------------------------*/
  144. /*  Definitions for border types and title positioning.  Positioning  */
  145. /*  of titles and the ability to handle multiple titles for a single  */
  146. /*  window is not yet implemented.  Currently you muct specify a      */
  147. /*  column for the title to begin in rather than use the RIGHT, LEFT  */
  148. /*  or CENTER justification parameters.                   */
  149. /*--------------------------------------------------------------------*/
  150.  
  151.  
  152. #define BDR_LNP    &bdr_ln
  153. #define BDR_DLNP   &bdr_dln
  154. #define BDR_SLNP   &bdr_sln
  155. #define BDR_12LNP  &bdr_12n
  156. #define BDR_21LNP  &bdr_21n
  157.  
  158. #define RIGHT       -1
  159. #define LEFT       -2
  160. #define CENTER       -3
  161.  
  162. #define TOP       -1
  163. #define BOTTOM       -2
  164.  
  165.  
  166. /*--------------------------------------------------------------------*/
  167. /*  Data entry definitions                          */
  168. /*--------------------------------------------------------------------*/
  169.  
  170. #define FIELDCHAR    '_'
  171.  
  172. #define FLD_ALPHA_NUMERIC     1
  173. #define FLD_INTEGER          2
  174. #define FLD_LONG          3
  175. #define FLD_DATE          4
  176. #define FLD_MONEY          5
  177. #define FLD_ZERO_FILL          6
  178. #define FLD_SPACE_FILL          7
  179. #define FLD_INTEGER_SPACE     8
  180. #define FLD_INTEGER_ZERO      9
  181. #define FLD_LONG_SPACE         10
  182. #define FLD_LONG_ZERO         11
  183.  
  184. /*  Field read error codes */
  185.  
  186. #define BAD_DATE      -1000
  187.